Method And Apparatus For Providing Guide For Combining Pattern Pieces Of Clothing

ABSTRACT

A method and apparatus for providing a guide for combining pattern pieces receives a selection of a first point in a first pattern piece and a selection of a second point in a second pattern piece to be combined with the first pattern piece, generates a virtual pattern piece in response to the selection of the second point being received, arranges the virtual pattern piece such that a third point in the virtual pattern piece having a position corresponding to the first point in the first pattern piece is matched to the second point in the second pattern piece, and provides a guide for combining the first pattern piece and the second pattern piece by moving the virtual pattern piece such that an outer line of the second pattern piece and an outer line of the virtual pattern piece correspond to each other.

CROSS-REFERENCE TO RELATED APPLICATIONS

This is a continuation of U.S. patent application Ser. No. 17/027,404,filed on Sep. 21, 2020, which claims priority to Republic of KoreaPatent Application No. 10-2019-0101365 filed on Aug. 19, 2019, andRepublic of Korea Patent Application No. 10-2020-0104075 filed on Aug.19, 2020, the entire disclosures of which are incorporated herein byreference for all purposes.

BACKGROUND 1. Field of the Invention

One or more example embodiments relate to a method and apparatus forproviding a guide for combining pattern pieces of clothing.

2. Description of the Related Art

Fabric which is a material for clothing is flexible, and thus it may bevaried in appearance from moment to moment according to a body shape ormotion of a person who wears it. Thus, to simulate clothing made with aflexible material such as fabric in three dimensions to appear morerealistic, an approach different from that of modeling an object madewith a rigid material may be required.

Virtual clothing may be formed with a plurality of layers oftwo-dimensional (2D) pattern pieces. Thus, when measuring a distance orlength between the pattern pieces, or sewing the pattern pieces, it maynot be easy to determine an accurate combination position for combiningthe pattern pieces. In addition, when a pattern is altered or changedafter the length is measured or the combination position is determined,there may be inconvenience of setting again two points or determiningagain a combination position.

The above description has been possessed or acquired by the inventor(s)in the course of conceiving the present invention and is not necessarilyan art publicly known before the present application is filed.

SUMMARY

As aspect provides a method and apparatus that determines a combinationposition for combining two-dimensional (2D) pattern pieces of clothingby moving the 2D pattern pieces and comparing lengths of portions to becombined.

Another aspect provides a method and apparatus that provides asimulation using a virtual pattern piece representing an outer shape ofa 2D pattern piece, and compares lengths of pattern pieces with arelatively lower computational complexity and/or at a relatively higherprocessing speed, compared to when using pattern pieces includingtexture, or provides a guide for sewing the pattern pieces.

According to an aspect, there is provided a method of providing a guidefor combining pattern pieces, the method including receiving a selectionof a first point in a first pattern piece, receiving a selection of asecond point in a second pattern piece to be combined with the firstpattern piece, generating a virtual pattern piece corresponding to thefirst pattern piece in response to the selection of the second pointbeing received, arranging the virtual pattern piece such that a thirdpoint in the virtual pattern piece is matched to the second point in thesecond pattern piece, and providing a guide for combining the firstpattern piece and the second pattern piece by moving the virtual patternpiece such that an outer line of the second pattern piece and an outerline of the virtual pattern piece correspond to each other. The thirdpoint may be at a position corresponding to the first point in the firstpattern piece.

The virtual pattern piece may have an outer shape corresponding to thefirst pattern piece.

The arranging of the virtual pattern piece may include calculating asecond normal vector of a tangent line corresponding to the secondpoint, calculating a third normal vector of a tangent line correspondingto the third point, and arranging the virtual pattern piece such thatthe second point and the third point correspond to each other and thesecond normal vector and the third normal vector are a straight line.

In response to the third point corresponding to a curve or a cornerpoint, the calculating of the third normal vector may includecalculating normal vectors of tangent lines respectively correspondingto nearby points adjacent to the third point, and calculating the thirdnormal vector based on a statistical value of the normal vectors.

The calculating of the third normal vector based on the statisticalvalue may include applying, to the normal vectors of the nearby points,a weight assigned based on a distance from the third point to each ofthe nearby points, and calculating the third normal vector based on astatistical value of normal vectors to which the weight is applied.

The providing of the guide may include moving the virtual pattern piecesuch that a tangent line of a point corresponding to a predeterminedlength on the outer line of the second pattern piece meets a tangentline of a point corresponding to a predetermined length on the outerline of the virtual pattern piece.

The providing of the guide may include storing, in the virtual patternpiece, at least one combination point of the second pattern piece andthe virtual pattern piece that is obtained by moving the virtual patternpiece such that the outer line of the second pattern piece and the outerline of the virtual pattern piece meet each other, and providing theguide for the combining based on the at least one combination pointstored in the virtual pattern piece.

The storing of the at least one combination point in the virtual patternpiece may include obtaining at least one combination point input from auser while moving the virtual pattern piece such that the outer line ofthe second pattern piece and the outer line of the virtual pattern piecemeet each other, and parameterizing information corresponding to theobtained at least one combination point and storing the parameterizedinformation in the virtual pattern piece.

The providing of the guide based on the at least one combination pointstored in the virtual pattern piece may include setting a sewing linebetween the first pattern piece and the second pattern piece based onthe at least one combination point stored in the virtual pattern piece,and indicating the sewing line in the first pattern piece and the secondpattern piece.

The providing of the guide based on the at least one combination pointstored in the virtual pattern piece may include receiving a selectionmade by the user from among the first pattern piece, the second patternpiece, and the virtual pattern piece for a pattern piece to which theguide is to be provided, and indicating, in the pattern piece selectedby the user, a notch mark corresponding to the at least one combinationpoint.

Each of the first pattern piece and the second pattern piece may bemodeled with a polygon mesh including a plurality of polygons.

The method may further include forming three-dimensional (3D) clothingby sewing the first pattern piece and the second pattern piece accordingto the guide, and simulating at least one of the 3D clothing or a 3Davatar over which the 3D clothing is draped.

According to another aspect, there is provided an apparatus forproviding a guide for combining pattern pieces, the apparatus includinga user interface (UI) configured to receive a selection of a first pointin a first pattern piece and a selection of a second point in a secondpattern piece to be combined with the first pattern piece, and aprocessor configured to generate a virtual pattern piece correspondingto the first pattern piece in response to the selection of the secondpoint being received, arrange the virtual pattern piece such that athird point in the virtual pattern piece is matched to the second pointin the second pattern piece, and provide a guide for combining the firstpattern piece and the second pattern piece by moving the virtual patternpiece such that an outer line of the second pattern piece and an outerline of the virtual pattern piece correspond to each other. The thirdpoint may be at a position corresponding to the first point in the firstpattern piece.

The processor may calculate a second normal vector of a tangent linecorresponding to the second point, calculate a third normal vector of atangent line corresponding to the third point, and arrange the virtualpattern piece such that the second point and the third point correspondto each other and the second normal vector and the third normal vectorare a straight line.

In response to the third point corresponding to a curve or a cornerpoint, the processor may calculate normal vectors of tangent linesrespectively corresponding to nearby points adjacent to the third point,and calculate the third normal vector based on a statistical value ofthe normal vectors.

The processor may store, in the virtual pattern piece, at least onecombination point of the second pattern piece and the virtual patternpiece that is obtained by moving the virtual pattern piece such that theouter line of the second pattern piece and the outer line of the virtualpattern piece meet each other, and provide the guide for the combiningbased on the at least one combination point stored in the virtualpattern piece.

The processor may obtain at least one combination point input from auser while moving the virtual pattern piece such that the outer line ofthe second pattern piece and the outer line of the virtual pattern piecemeet each other, and parameterize information corresponding to theobtained at least one combination point and store the parameterizedinformation in the virtual pattern piece.

The processor may set a sewing line between the first pattern piece andthe second pattern piece based on the stored at least one combinationpoint, and indicate the sewing line in the first pattern piece and thesecond pattern piece.

Additional aspects of embodiments will be set forth in part in thedescription which follows and, in part, will be apparent from thedescription, or may be learned by practice of the disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

These and/or other aspects, features, and advantages of the inventionwill become apparent and more readily appreciated from the followingdescription of example embodiments, taken in conjunction with theaccompanying drawings of which:

FIG. 1 is a flowchart illustrating an example of a method of providing aguide for combining pattern pieces according to an example embodiment;

FIG. 2 illustrates an example of arranging and moving a virtual patternpiece by an apparatus for providing a guide for combining pattern pieces(hereinafter simply a providing apparatus) according to an exampleembodiment;

FIGS. 3A and 3B illustrate an example of arranging and moving a virtualpattern piece by a providing apparatus according to an exampleembodiment;

FIGS. 4A and 4B illustrate an example of calculating a normal vectorcorresponding to a curved portion and a corner portion by a providingapparatus according to an example embodiment;

FIG. 5 illustrates an example of providing a guide based on at least onecombination point obtained from a user while a providing apparatus ismoving a virtual pattern piece according to an example embodiment; and

FIG. 6 is a block diagram illustrating an example of a providingapparatus according to an example embodiment.

DETAILED DESCRIPTION

Hereinafter, embodiments are described in detail with reference to theaccompanying drawings. With respect to the descriptions of the drawings,like reference numerals refer to like elements. Various modificationsare possible in various embodiments described below. Embodimentsdescribed below are not intended to be limited to the implementationforms, and it is understood that it should include all modifications,equivalents, and/or alternatives according to various embodiments.

The terminology used herein is for the purpose of describing particularexamples only and is not intended to limit the example embodiments. Asused herein, the singular forms “a”, “an”, and “the” are intended toinclude the plural forms as well, unless the context clearly indicatesotherwise. It will be further understood that the terms“comprises/comprising” and/or “includes/including” when used herein,specify the presence of stated features, integers, steps, operations,elements, and/or components, but do not preclude the presence oraddition of one or more other features, integers, steps, operations,elements, components and/or groups thereof.

Unless otherwise defined herein, all the terms used herein, whichinclude technical or scientific terms, may have the same meaning that isgenerally understood by a person skilled in the art. It will be furtherunderstood that terms, which are defined in a dictionary and commonlyused, should also be interpreted as is customary in the relevant relatedart and not in an idealized or overly formal detect unless expressly sodefined herein in various embodiments of the inventive concept.

Furthermore, in describing example embodiments with reference to theaccompanying drawings, the same reference denotations are assigned tothe same elements without regard to the drawing denotations, aduplicated description thereof will be omitted. When it is determinedthat a detailed description of the related well-known technologyunnecessarily blurs the gist of embodiments in describing embodiments, adetailed description thereof will be omitted.

In addition, terms such as first, second, A, B, (a), (b), and the likemay be used herein to describe components. Each of these terminologiesis not used to define an essence, order or sequence of a correspondingcomponent but used merely to distinguish the corresponding componentfrom other component(s). It should be noted that if it is described inthe specification that one component is “connected”, “coupled”, or“joined” to another component, a third component may be “connected”,“coupled”, and “joined” between the first and second components,although the first component may be directly connected, coupled orjoined to the second component.

The same name may be used to describe an element included in theexamples described above and an element having a common function. Unlessotherwise mentioned, the descriptions of the examples may be applicableto the following examples, and thus duplicated and redundantdescriptions will be omitted for conciseness.

FIG. 1 is a flowchart illustrating an example of a method of providing aguide for combining pattern pieces according to an example embodiment.Referring to FIG. 1 , in operation 110, an apparatus for providing aguide for combining pattern pieces (hereinafter simply referred to as a“providing apparatus”) receives a selection of a first point in a firstpattern piece. The selection of the first point in the first patternpiece may be performed by touch or mouse click on the first point in thefirst pattern piece and/or a line including the first point. The firstpoint selected in operation 110 may be displayed on a screen as a firstpoint 212 in a first pattern piece 210 illustrated in FIG. 2 , forexample.

A pattern piece(s) described herein may be a portion of atwo-dimensional (2D) pattern used to produce clothing a user desires todrape around or over a three-dimensional (3D) avatar. The patternpiece(s) may correspond to body parts of the 3D avatar, for example,arms (e.g., sleeves), torso (front and back), neck, and legs. Theclothing may be 3D virtual clothing corresponding to the 2D pattern. The2D pattern may be a pattern on a 2D plane that is virtually produced bya computer program. The 2D pattern may include the pattern piece(s)corresponding to the body parts of the 3D avatar, for example, arms,torso, neck, and legs.

The 2D pattern may be modeled with a mesh including a plurality ofpolygons, for example, triangles, to simulate the 3D virtual clothing.For example, three vertices of a triangle may be point masses havingmass, and sides of the triangle may be represented as springs havingelasticity which connects the point masses. Thus, the 2D pattern may bemodeled by a mass-spring model, for example. The springs may haverespective resistance values against, for example, stretch, shear, andbending, depending on a material property of fabric used. Each vertexmay move according to the action of an external force such as gravity,and the action of an internal force such as stretch, shear, and bending.When a force being applied to each vertex is obtained by calculating theexternal force and the internal force, a speed of displacement andmotion of each vertex may be obtained. In addition, a motion of thevirtual clothing may be simulated through a motion of vertices of apolygon in each time step. By draping, over a 3D avatar, a 2D virtualclothing pattern formed with a mesh, it is possible to embody 3D virtualclothing that looks natural based on the laws of physics.

In operation 120, the providing apparatus receives a selection of asecond point in a second pattern piece to be combined with the firstpattern piece received in operation 110. The selection of the secondpoint in the second pattern piece may be performed by touch or mouseclick on the second point in the second pattern piece and/or a lineincluding the second point. The second point selected in operation 120may be displayed on a screen as a second point 232 in a second patternpiece 230 illustrated in FIG. 2 , for example.

The first point and the second point may be, for example, a start pointfor sewing from which sewing is to be started in both the patternpieces, or a start point for length measurement from which lengthmeasurement is performed on both the pattern pieces. For example, thefirst pattern piece may be a main pattern piece such as a front or backside, and the second pattern piece may be a sub-pattern piece such asleeve. In contrast to this example, the first pattern piece may be asub-pattern piece, and the second pattern piece may be a main patternpiece. Each of the first pattern piece and the second pattern piece maybe modeled with a polygon mesh including a plurality of polygons, forexample.

In operation 130, the providing apparatus generates a virtual patternpiece corresponding to the first pattern piece in response to theselection of the second point being received in operation 120. Forexample, the providing apparatus may display, in advance, as a previewon a screen, a shape obtained by representing an outer shape of thefirst pattern piece. In this example, the shape obtained by representingthe outer shape of the first pattern piece may be referred to herein asa virtual pattern piece. The virtual pattern piece reflects therein onlyan outer pattern shape corresponding to the first pattern piece and doesnot reflect therein a texture including a mesh of the first patternpiece. For example, a position of an A point in the first pattern piecemay correspond to a position of an A point in the virtual pattern piece.The virtual pattern piece generated in operation 130 may also bereferred to as a ghost.

The second pattern piece may be stationary without moving. The virtualpattern piece may be displayed on a screen in a form that moves along anouter line of the second pattern piece. Thus, the second pattern piecemay also be referred to as a stationary pattern, and the virtual patternpiece may also be referred to as a moving pattern.

Since the virtual pattern piece does not reflect therein the texture ofthe first pattern piece, it is possible to reduce computationalcomplexity by moving the virtual pattern piece, instead of movingdirectly the first pattern piece. By moving the virtual pattern pieceobtained by representing the outer shape of the first pattern piecealong the outer line of the second pattern piece, the providingapparatus may compare lengths of the pattern pieces with the reducedcomputational complexity and/or at a higher processing speed, ascompared to using the first pattern piece, or provide a guide for sewingthe pattern pieces.

In operation 140, the providing apparatus arranges the virtual patternpiece such that a third point in the virtual pattern piece is matched tothe second pattern piece in the second pattern piece. The third pointmay have a position corresponding to the first point in the firstpattern piece.

For example, in operation 140, the providing apparatus may calculate asecond normal vector of a tangent line corresponding to the secondpoint. In addition, the providing apparatus may calculate a third normalvector of a tangent line corresponding to the third point. The providingapparatus may arrange the virtual pattern piece such that the secondpoint and the third point correspond to each other and the second normalvector and the third normal vector are to become a straight line.Hereinafter, how the providing apparatus arranges a virtual patternpiece will be described in detail with reference to FIGS. 3 . and 4.

For example, in a case in which points are selected from differentpattern pieces in operations 110 and 120, the providing apparatus maymove a virtual pattern piece generated corresponding to a pattern piece(e.g., the first pattern piece) initially selected in operation 110 to asecond point in a pattern piece (e.g., the second pattern piece)selected in operation 120, and display them.

In operation 150, the providing apparatus provides a guide for combiningthe first pattern piece and the second pattern piece by moving thevirtual pattern piece such that the outer line of the second patternpiece and the outer line of the virtual pattern piece correspond to eachother. Although it is described that the second pattern piece isstationary and the virtual pattern piece moves, the providing apparatusmay also move the second pattern piece or move both the second patternpiece and the virtual pattern piece. The guide for combining the firstpattern piece and the second pattern piece may be construed asencompassing various guide lines including, for example, a sewing linefor sewing the first pattern piece and the second pattern piece togetherand a notch mark for the sewing.

For example, in operation 150, the providing apparatus may move thevirtual pattern piece such that a tangent line of a point correspondingto a predetermined length on the outer line of the second pattern piece(e.g., a predetermined length from the second point) meets a tangentline of a point corresponding to a predetermined length on the outerline of the virtual pattern piece (e.g., a predetermined length from thethird point). The providing apparatus may move or rotate the virtualpattern piece such that the outer line of the second pattern piece andthe outer line of the virtual pattern piece meet each other. In thisexample, a length of an outer line of each pattern piece that isidentified as the virtual pattern piece moves may be displayed on ascreen.

For example, in operation 150, the providing apparatus may store, in thevirtual pattern piece, at least one combination point of the secondpattern piece and the virtual pattern piece that is obtained by movingthe virtual pattern piece such that the outer line of the second patternpiece and the outer line of the virtual pattern piece meet each other.For example, the providing apparatus may obtain at least one combinationpoint input from the user while moving the virtual pattern piece suchthat the outer line of the second pattern piece and the outer line ofthe virtual pattern piece meet each other. Hereinafter, how theproviding apparatus obtains at least one combination point will bedescribed in detail with reference to FIG. 5 .

The providing apparatus may parameterize information corresponding tothe obtained at least one combination point and store the parameterizedinformation in the virtual pattern piece. For example, the providingapparatus may store the information associated with the combinationpoint (e.g., a coordinate corresponding to the combination point) asparameters that depend on the virtual pattern piece.

The providing apparatus may provide the guide for the combining based onthe at least one combination point stored in the virtual pattern piece.For example, the providing apparatus may set a sewing line between thefirst pattern piece and the second pattern piece based on the at leastone combination point stored in the virtual pattern piece. The providingapparatus may indicate the sewing line in the first pattern piece andthe second pattern piece. Alternatively, the providing apparatus mayreceive a selection made by the user from among the first pattern piece,the second pattern piece, and the virtual pattern piece for a patternpiece to which the guide is to be provided. The providing apparatus mayindicate a notch (or a notch mark) corresponding to the at least onecombination point in the pattern piece selected by the user. The notchmark may indicate design intension, for example, a sign indicating howto match measurements in a clothing pattern by sewing. The notch markmay be indicated to maintain a silhouette or design of the clothing asit is or facilitate sewing. For example, a single notch may be indicatedin a pattern piece corresponding to a front side among two patternpieces to be sewed together, and a double notch may be indicated in apattern piece corresponding to a back side of the two pattern pieces.Thus, it is possible to readily identify the front side and the backside. The providing apparatus may sew the pattern pieces by accuratelymatching the pattern pieces respectively corresponding to the front sideand the back side according to the indicated notches.

According to an example embodiment, the providing apparatus may form 3Dclothing by sewing the first pattern piece and the second pattern piecebased on the guide provided in operation 150. The providing apparatusmay simulate at least one of virtual clothing formed by sewing patternpieces or a 3D avatar over which the virtual clothing is draped. Theterm “drape” or “draping” described herein may be construed as a processof putting, on a 3D avatar, 3D clothing formed by combining or sewing 2Dpattern pieces of clothing by a computer program.

FIG. 2 illustrates an example of arranging and moving a virtual patternpiece by a providing apparatus according to an example embodiment.Hereinafter, how pattern pieces, for example, a first pattern piece 210,a second pattern piece 230, and a virtual pattern piece 250, arearranged and moved will be described with reference to screens 201, 202,and 203 of FIG. 2 .

According to an example embodiment, by moving a pattern piece such thatouter lines of two pattern pieces meet each other, it is possible tocompare respective lengths of the two pattern pieces. Through such alength comparing process, a providing apparatus may indicate, in each ofthe two pattern pieces, a notch(es) or sewing line that is a referencefor sewing the two pattern pieces.

The providing apparatus may activate a pattern walking function includedin a menu displayed at an upper end of a screen of an application thatprovides a guide for combining pattern pieces, and select one point fromeach of two pattern pieces displayed on the screen. The point selectedfrom each pattern piece may correspond to a start point for sewing, forexample.

For example, when a cursor is moved along an outer line of a patternpiece A, the providing apparatus may display an animated outer shape ofanother pattern piece B such that a corresponding outer line of thepattern piece B is moved along the outer line of the pattern piece A bybeing engaged therewith.

For example, as illustrated, the providing apparatus may receive a firstpoint 212 in the first pattern piece 210 selected by a user as shown onthe screen 201. In addition, the providing apparatus may receive asecond point 232 in the second pattern piece 230 selected by the user asshown on the screen 201.

When the second point 232 is received as an input, the providingapparatus may then generate the virtual pattern piece 250 correspondingto the first pattern piece 210. As shown on the screen 202, theproviding apparatus may arrange the virtual pattern piece 250 such thata third point 252 in the virtual pattern piece 250 corresponding to aposition of the first point 212 in the first pattern piece 210 (e.g., aposition at a lower end of a left sleeve) is matched to the second point232 in the second pattern piece 230. Hereinafter, how the providingapparatus arranges the virtual pattern piece 250 will be described indetail with reference to FIG. 3 .

As shown on the screen 203, the providing apparatus may move the virtualpattern piece 250 such that an outer line 234 of the second patternpiece 230 and an outer line 254 of the virtual pattern piece 250correspond to each other. Here, an outer line of a pattern piece may bedefined in a clockwise or counterclockwise direction. A movement of thevirtual pattern piece 250 may be determined based on a movement from astart point on the outer line 234 of the second pattern piece 230. Theproviding apparatus may determine a combination position of patternpieces at which the pattern pieces are combined by comparing lengths ofportions to be combined through a movement of the pattern pieces.

Although described in detail hereinafter, the providing apparatus mayobtain at least one combination point input from the user while movingthe virtual pattern piece 250 such that the outer line 234 of the secondpattern piece 230 and the outer line 254 of the virtual pattern piece250 meet each other. During such a movement of the virtual pattern piece250, the user may add the at least one combination point, for example, anotch, to the second pattern piece 230 and/or the virtual pattern piece250, through a right mouse click, for example. The providing apparatusmay store, in the virtual pattern piece 250, information associated withthe at least one combination point.

The providing apparatus may provide a guide for combining the firstpattern piece 210 and the second pattern piece 230 using the virtualpattern piece 250 in which the at least one combination point is stored.

FIGS. 3A and 3B illustrate an example of arranging and moving a virtualpattern piece by a providing apparatus according to an exampleembodiment. FIG. 3A illustrates a first pattern piece 310, a secondpattern piece 330, and a virtual pattern piece 350. FIG. 3B illustrateshow the virtual pattern piece 350 is arranged by a combination betweenone point (e.g., a second point 331) in the second pattern piece 330 andone point (e.g., a third point 351) in the virtual pattern piece 350.

According to an example embodiment, a providing apparatus may apply afirst point selected by a user from a first pattern piece 310 to thethird point 351 in the virtual pattern piece 350. Here, the expression“applying a first point to a third point” may be construed as indicatingthe third point at a position in the virtual pattern piece 350 thatcorresponds to the first point in the first pattern piece 310.

The providing apparatus may arrange the virtual pattern piece 350 suchthat the third point 351 in the virtual pattern piece 350 is matched tothe second point 331 in the second pattern piece 330.

For example, the providing apparatus may calculate a second normalvector 335 of a tangent line 333 corresponding to the second point 331,and calculate a third normal vector 355 of a tangent line 353corresponding to the third point 351. The providing apparatus mayarrange the virtual pattern piece 350 such that the second point 331 andthe third point 351 correspond to each other and the second normalvector 335 and the third normal vector 355 become a straight line.

A method of arranging a virtual pattern piece described above withreference to FIGS. 3A and 3B may be applied to move a virtual patternpiece such that an outer line of the second pattern piece 330 and anouter line of the virtual pattern piece 350 correspond to each other.

The providing apparatus may calculate normal vectors of tangent linesrespectively corresponding to points in a second pattern piece andpoints in a virtual pattern piece that meet each other as the virtualpattern piece is moved, and move the virtual pattern piece such thatpoints of both the pattern pieces correspond to each other and thenormal vectors of the tangent lines corresponding to both the patterpieces are a straight line.

According to an example embodiment, a pattern piece may include a curvedportion including a curve and/or a corner portion including a cornerpoint, in addition to a straight line portion. A normal vector of apoint corresponding to the straight line portion may be obtained bycalculating a normal vector of a tangent line of the point. A curve maybe represented as a set of segments of a straight line. Thus, theproviding apparatus may obtain a normal vector of a curve or a cornerpoint using a statistical value of normal vectors of nearby segments ofa straight line. Hereinafter, how the providing apparatus obtains anormal vector of a curved portion and/or a corner portion of a patternpiece will be described in detail with reference to FIGS. 4A and 4B.

FIG. 4 illustrates an example of calculating a normal vectorcorresponding to a curved portion and a corner portion by a providingapparatus according to an example embodiment. FIG. 4A illustrates apattern piece 400 including a curved portion 410 and a corner portion430 that are not a straight line portion. FIG. 4B illustrates a targetpoint 403 in the curved portion 410 and nearby points 401, 402, 404, and405 adjacent to the target point 403. The target point 403 may be apoint from which a normal vector is to be calculated.

As described above, a curve may be represented as a set of segments of astraight line. For example, in a case in which a point from which anormal vector is to be calculated is in the curved portion 410, aproviding apparatus may obtain a normal vector of the target point 403corresponding to a curved using a statistical value of normal vectors ofthe nearby points 401, 402, 404, and 405 adjacent to the target point403.

In this example, when obtaining the normal vector of the target point403, the providing apparatus may apply, to the normal vectors calculatedcorresponding to the nearby points 401, 402, 404, and 405, a weightassigned based on a distance from the target point 403 to each of thenearby points 401, 402, 404, and 405. In this example, the points 402and 404 are closer to the target point 403 as compared to the points 401and 405, and thus the weight having a greater value than that of theweight applied to the points 401 and 405 may be assigned to the points402 and 404. The providing apparatus may calculate the normal vector ofthe target point 403 based on a statistical value (e.g., a weightedmean) of normal vectors to which the weight is applied.

A method of calculating a normal vector described above with referenceto FIGS. 4A and 4B may be applied to calculate a normal vector forcurved portions and corner portions of a second pattern piece and avirtual pattern piece during a movement of the virtual pattern piece.

FIG. 5 illustrates an example of providing a guide based on at least onecombination point obtained from a user while a providing apparatus ismoving a virtual pattern piece according to an example embodiment.Hereinafter, how at least one combination point is obtained through auser interface (UI) and the obtained combination point is applied toeach pattern piece will be described in detail with reference to screens510, 520, and 530 of FIG. 5 .

For example, as shown on the screen 510, a providing apparatus mayreceive, as an input, a combination point 515 from a user through a UI517 while moving a virtual pattern piece 513 such that an outer line ofa second pattern piece 511 and an outer line of the virtual patternpiece 513 meet each other. For example, when the user right clicks amouse during a movement of the virtual pattern piece 513, the UI 517 maybe displayed as shown on the screen 510. In this example, when the userselects “Add Notch to Intersection” displayed on the UI 517, thecombination point 515 may be selected.

The providing apparatus may store information associated with thecombination point 515 in the virtual pattern piece 513. The combinationpoint 515 may correspond to a point at which the outer line of thevirtual pattern piece 513 and the outer line of the second pattern piece511 meet each other. Thus, the information associated with thecombination point 515 may include position information including aposition and a coordinate of the combination point 515 in the secondpattern piece 511, in addition to position information including aposition and a coordinate of the combination point 515 in the virtualpattern piece 513.

The providing apparatus may parameterize the information associated withthe combination point 515 and store the parameterized information in thevirtual pattern piece 513.

The providing apparatus may indicate a notch mark 525 on the outer lineof the second pattern piece 511 using the information stored in thevirtual pattern piece 513, as shown on the screen 520. The notch mark525 may be the same point as the combination point 515 displayed on thescreen 510.

In addition, the providing apparatus may indicate a notch mark 535 in afirst pattern piece 531 corresponding to the virtual pattern piece 513using the information stored in the virtual pattern piece 513, as shownon the screen 530. The notch mark 535 may be a point in the firstpattern piece 531 corresponding to a position corresponding to thecombination point 515 on the outer line of the virtual pattern piece 513displayed on the screen 510.

FIG. 6 is a block diagram illustrating an example of a providingapparatus for providing a guide for combining pattern pieces accordingto an example embodiment. Referring to FIG. 6 , a providing apparatus600 includes a UI 610 and a processor 630. The providing apparatus 600further includes a memory 650 and an output device 670. The UI 610, theprocessor 630, the memory 650, and the output device 670 may communicatewith one another through a communication bus 605.

The UI 610 may receive, from a user, a selection of a first point in afirst pattern piece. In addition, the UI 610 may receive, from a user, aselection of a second point in a second pattern piece to be combinedwith the first pattern piece. The UI 610 may receive a touch input andthe like through, for example, a stylus pen, a mouse, a keyboard, or atouch interface.

In response to the second point being input through the UI 610, theprocessor 630 may generate a virtual pattern piece corresponding to thefirst pattern piece. The processor 630 may arrange the virtual patternpiece such that a third point in the virtual pattern piece is matched tothe second point in the second pattern piece. The third point may have aposition corresponding to the first point in the first pattern piece.

The processor 630 may calculate a second normal vector of a tangent linecorresponding to the second point, and calculate a third normal vectorof a tangent line corresponding to the third point. The processor 630may arrange the virtual pattern piece such that the second point and thethird pattern correspond to each other, and the second normal vector andthe third normal vector are a straight line.

For example, when the third point corresponds to a corner point, theprocessor 630 may calculate normal vectors of tangent linescorresponding to nearby points adjacent to the third point. Theprocessor 630 may calculate the third normal vector based on astatistical value of the normal vectors.

The processor 630 may provide a guide for combining the first patternpiece and the second pattern piece by moving the virtual pattern piecesuch that an outer line of the second pattern piece corresponds to anouter line of the virtual pattern piece.

The processor 630 may store, in the virtual pattern piece, at least onecombination point of the second pattern piece and the virtual patternpiece that is obtained by moving the virtual pattern piece such that theouter line of the second pattern piece and the outer line of the virtualpattern piece meet each other. The processor 630 may obtain the at leastone combination point input from the user while moving the virtualpattern piece such that the outer line of the second pattern piece andthe outer line of the virtual pattern piece meet each other. Theprocessor 630 may parameterize information corresponding to the obtainedat least one combination point and store the parameterized informationin the virtual pattern piece.

The processor 630 may provide the guide for the combining based on theat least one combination point stored in the virtual pattern piece. Forexample, the processor 630 may set a sewing line between the firstpattern piece and the second pattern piece based on the at least onecombination point stored in the virtual pattern piece. The processor 630may indicate the sewing line in the first pattern piece and in thesecond pattern piece.

The memory 650 may store information associated with the first point inthe first pattern piece and the second point in the second pattern piecethat are received through the UI 610. Here, the information may be, forexample, coordinate information of the first point and the second point.In addition, the memory 650 may store the guide for combining the firstpattern piece and the second pattern piece that is provided by theprocessor 630. The guide for combining the first pattern piece and thesecond pattern piece may include at least one of a notch mark or asewing line for sewing the first pattern piece and the second patternpiece. The guide for combining the first pattern piece and the secondpattern piece may be indicated in at least one of the first patternpiece, the second pattern piece, or the virtual pattern piece, accordingto settings or selection by the user.

In addition, the memory 650 may store information associated withvirtual clothing formed by sewing the pattern pieces according to theguide by the processor 630, data of a 3D avatar over which the virtualclothing is draped, and the like. The data of the 3D avatar may include,for example, a body size of the 3D avatar, a position coordinate of eachbody part of the 3D avatar, and the like.

The memory 650 may be a volatile or nonvolatile memory.

The output device 670 may display virtual clothing formed by theprocessor 630 and/or the 3D avatar over which the virtual clothing isdraped. The output device 670 may output the virtual clothing and/or the3D avatar over which the virtual clothing is draped onto a display orscreen or a separate clothing pattern producing device.

The output device 670 may be, for example, the display or acommunication interface configured to communicate with the outside ofthe providing apparatus 600.

The processor 630 may perform one or more, or all, of the methodsdescribed above with reference to FIGS. 1 through 5 or algorithmscorresponding to the methods. The processor 630 may be a data processingdevice embodied by hardware having a circuit of a physical structure toexecute desired operations. The desired operations may include, forexample, codes or instructions included in a program. The processor 630may be embodied as, for example, a central processing unit (CPU), agraphics processing unit (GPU), or a neural network processing unit(NPU). For example, the providing apparatus 600 embodied by hardware mayinclude, for example, a microprocessor, a CPU, a processor core, amulticore processor, a multiprocessor, an application-specificintegrated circuit (ASIC), and a field-programmable gate array (FPGA).

The processor 630 may execute a program to control the providing device600. A program code executed by the processor 630 may be stored in thememory 650.

The memory 650 may store various sets of information generated in aprocessing operation of the processor 630 described above. In addition,the memory 650 may store various sets of data and programs, and thelike. The memory 650 may include a volatile or nonvolatile memory. Thememory 650 may include a massive storage medium such as a hard disk tostore various sets of data.

According to example embodiments described herein, by moving 2D patternpieces of clothing and comparing lengths of portions to be combined, itis possible to determine a combination position at which the patternpieces are to be combined.

According to example embodiments described herein, by providing asimulation using a virtual pattern piece representing an outer shape ofa 2D pattern piece of clothing, it is possible to compare lengths ofpattern pieces with a relatively lower computational complexity and/orat a higher processing speed, compared to when using pattern piecesincluding texture, or is it possible to provide a guide for sewing thepattern pieces.

The units described herein may be implemented using hardware componentsand software components. For example, the hardware components mayinclude microphones, amplifiers, band-pass filters, audio to digitalconvertors, non-transitory computer memory and processing devices. Aprocessing device may be implemented using one or more general-purposeor special purpose computers, such as, for example, a processor, acontroller and an arithmetic logic unit (ALU), a digital signalprocessor, a microcomputer, a field programmable gate array (FPGA), aprogrammable logic unit (PLU), a microprocessor or any other devicecapable of responding to and executing instructions in a defined manner.The processing device may run an operating system (OS) and one or moresoftware applications that run on the OS. The processing device also mayaccess, store, manipulate, process, and create data in response toexecution of the software. For purpose of simplicity, the description ofa processing device is used as singular; however, one skilled in the artwill appreciated that a processing device may include multipleprocessing elements and multiple types of processing elements. Forexample, a processing device may include multiple processors or aprocessor and a controller. In addition, different processingconfigurations are possible, such a parallel processors.

The software may include a computer program, a piece of code, aninstruction, or some combination thereof, to independently orcollectively instruct or configure the processing device to operate asdesired. Software and data may be embodied permanently or temporarily inany type of machine, component, physical or virtual equipment, computerstorage medium or device, or in a propagated signal wave capable ofproviding instructions or data to or being interpreted by the processingdevice. The software also may be distributed over network coupledcomputer systems so that the software is stored and executed in adistributed fashion. The software and data may be stored by one or morenon-transitory computer readable recording mediums. The non-transitorycomputer readable recording medium may include any data storage devicethat can store data which can be thereafter read by a computer system orprocessing device.

The methods according to the above-described example embodiments may berecorded in non-transitory computer-readable media including programinstructions to implement various operations of the above-describedexample embodiments. The media may also include, alone or in combinationwith the program instructions, data files, data structures, and thelike. The program instructions recorded on the media may be thosespecially designed and constructed for the purposes of exampleembodiments, or they may be of the kind well-known and available tothose having skill in the computer software arts. Examples ofnon-transitory computer-readable media include magnetic media such ashard disks, floppy disks, and magnetic tape; optical media such asCD-ROM discs, DVDs, and/or Blue-ray discs; magneto-optical media such asoptical discs; and hardware devices that are specially configured tostore and perform program instructions, such as read-only memory (ROM),random access memory (RAM), flash memory (e.g., USB flash drives, memorycards, memory sticks, etc.), and the like. Examples of programinstructions include both machine code, such as produced by a compiler,and files containing higher level code that may be executed by thecomputer using an interpreter. The above-described devices may beconfigured to act as one or more software modules in order to performthe operations of the above-described example embodiments, or viceversa.

While this disclosure includes specific examples, it will be apparent toone of ordinary skill in the art that various changes in form anddetails may be made in these examples without departing from the spiritand scope of the claims and their equivalents. The examples describedherein are to be considered in a descriptive sense only, and not forpurposes of limitation. Descriptions of features or aspects in eachexample are to be considered as being applicable to similar features oraspects in other examples. Suitable results may be achieved if thedescribed techniques are performed in a different order, and/or ifcomponents in a described system, architecture, device, or circuit arecombined in a different manner and/or replaced or supplemented by othercomponents or their equivalents.

Therefore, the scope of the disclosure is defined not by the detaileddescription, but by the claims and their equivalents, and all variationswithin the scope of the claims and their equivalents are to be construedas being included in the disclosure.

What is claimed is:
 1. A method, comprising: receiving selection of afirst point in a first two-dimensional (2D) pattern piece; receivingselection of a second point in a second 2D pattern piece to be combinedwith the first 2D pattern piece; in response to receiving the selectionof the second point, generating a replicated 2D pattern piece of thefirst 2D pattern piece; identifying a third point in the replicated 2Dpattern piece corresponding to the first point in the first 2D patternpiece; and displaying the replicated 2D pattern piece rotated,translationally moved or both rotated and translationally moved to havethe third point in the replicated 2D pattern piece meet the second pointin the second 2D pattern piece.
 2. The method of claim 1, furthercomprising: receiving a first input indicating movement from the secondpoint to an updated point in the second 2D pattern piece; identifying afourth point in the replicated 2D pattern piece corresponding to theupdated point in the first 2D pattern piece; and displaying thereplicated 2D pattern piece further rotated, further translationallymoved or both further rotated and translationally moved to have theupdated point in the first 2D pattern piece meet the fourth point in thesecond 2D pattern piece.
 3. The method of claim 2, further comprisingdisplaying animation of rotating, translationally moving or bothrotating and translationally moving the replicated 2D pattern piece asintermediate inputs between the first point to the updated point arereceived.
 4. The method of claim 2, wherein a length of a portion of anouter line of the replicated 2D pattern piece between the third pointand the fourth point is identical to a length of a portion of an outerline of the second 2D pattern piece between the second point and theupdated point.
 5. The method of claim 2, further comprising: receiving asecond input at the updated point, the second input different from thefirst input; and responsive to receiving the second input, displaying anoption to generate one or both of a first mark at the updated point ofthe second 2D pattern and a second mark at a fifth point of the first 2Dpattern corresponding to the fourth point in the replicated 2D pattern.6. The method of claim 5, further comprising: receiving a selection onthe displayed option; and displaying one or both of the first mark andthe second mark according to the selection on the displayed option. 7.The method of claim 6, wherein the first mark and the second markrepresent notches.
 8. The method of claim 2, wherein a first normalvector of an outer line of the second 2D pattern piece at the updatedpoint is parallel to a second normal vector of an outer line of thereplicated 2D pattern piece at the fourth point.
 9. The method of claim8, wherein the first normal vector is determined by at least applyingfirst weights to first normal vectors at points on the outer line of thesecond pattern piece adjacent to the updated point, and the secondnormal vector is determined by at least applying second weights tosecond normal vectors at points on the outer line of the replicated 2Dpattern piece adjacent to the fourth point.
 10. The method of claim 2,further comprising: storing the updated point and a point of the first2D pattern piece corresponding to the fourth point of the replicated 2Dpattern piece; and setting a sewing line between the first 2D patternpiece and the second 2D pattern to include the stored update point andthe stored point of the first 2D pattern piece.
 11. The method of claim1, wherein the first point is on an outer line of the first 2D pattern,and the second point is on an outer line of the replicated 2D patternpiece.
 12. The method of claim 1, wherein the first point and the secondpoint are starting points for sewing the first 2D pattern piece and thesecond 2D pattern piece.
 13. The method of claim 1, further comprisingdisplaying a guide for combining the first pattern piece and the secondpattern piece.
 14. A non-transitory computer-readable storage mediumstoring instructions thereon, the instructions, when executed by aprocessor, cause the processor to: receive selection of a first point ina first two-dimensional (2D) pattern piece; receive selection of asecond point in a second 2D pattern piece to be combined with the first2D pattern piece; in response to receiving the selection of the secondpoint, generate a replicated 2D pattern piece of the first 2D patternpiece; identify a third point in the replicated 2D pattern piececorresponding to the first point in the first 2D pattern piece; anddisplay the replicated 2D pattern piece rotated, translationally movedor both rotated and translationally moved to have the third point in thereplicated 2D pattern piece meet the second point in the second 2Dpattern piece.
 15. The non-transitory computer-readable storage mediumof claim 14, further storing instructions that cause the processor to:receive a first input indicating movement from the second point to anupdated point in the second 2D pattern piece; identify a fourth point inthe replicated 2D pattern piece corresponding to the updated point inthe first 2D pattern piece; and display the replicated 2D pattern piecefurther rotated, further translationally moved or both further rotatedand translationally moved to have the updated point in the first 2Dpattern piece meet the fourth point in the second 2D pattern piece. 16.The non-transitory computer-readable storage medium of claim 15, furtherstoring instructions that cause the processor to display animation ofrotating, translationally moving or both rotating and translationallymoving the replicated 2D pattern piece as intermediate inputs betweenthe first point to the updated point are received.
 17. Thenon-transitory computer-readable storage medium of claim 15, wherein alength of a portion of an outer line of the replicated 2D pattern piecebetween the third point and the fourth point is identical to a length ofa portion of an outer line of the second 2D pattern piece between thesecond point and the updated point.
 18. The non-transitorycomputer-readable storage medium of claim 15, further storinginstructions that cause the processor to: receive a second input at theupdated point, the second input different from the first input; andresponsive to receiving the second input, display an option to generateone or both of a first mark at the updated point of the second 2Dpattern and a second mark at a fifth point of the first 2D patterncorresponding to the fourth point in the replicated 2D pattern.
 19. Thenon-transitory computer-readable storage medium of claim 15, wherein afirst normal vector of an outer line of the second 2D pattern piece atthe updated point is parallel to a second normal vector of an outer lineof the replicated 2D pattern piece at the fourth point.
 20. A method,comprising: receiving selection of a first point in a firsttwo-dimensional (2D) pattern piece; receiving selection of a secondpoint in a second 2D pattern piece to be combined with the first 2Dpattern piece; in response to receiving the selection of the secondpoint, generating a replicated 2D pattern piece of the first 2D patternpiece; identifying a third point in the replicated 2D pattern piececorresponding to the first point in the first 2D pattern piece; anddisplaying the replicated 2D pattern piece located to have the thirdpoint in the replicated 2D pattern piece meet the second point in thesecond 2D pattern piece and rotated to have a normal vector at the thirdpoint that is parallel to a normal vector of the second 2D pattern pieceat the second point.